package com.founder.cebxkit;

import java.io.Serializable;

public class CEBXOutlineWrapper implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -7734428780331961583L;
	private long mXEKOutline;
	
	/**
	 * 构造函数，负责各种初始值。
	 * @return
	 */
	public CEBXOutlineWrapper(long handle) {
		mXEKOutline = handle;
	}

	/**
	 * 获取目录第一层第一个目录对象。
	 * @return
	 */
	public CEBXOutlineElemWrapper GetFirstChild() {
		long handle = GetXEKFirstChild();
		if (handle != 0)
			return new CEBXOutlineElemWrapper(handle);
		else
			return null;
	}
	
	/**
	 * 获取指定目录对象的下一个兄弟目录对象。
	 * @param curchild		当前目录对象
	 * @return
	 */	
	public CEBXOutlineElemWrapper GetNextChild(CEBXOutlineElemWrapper curchild) {
		long handle = curchild.GetXEKHandle();

		if (handle != 0) {
			long xekhandle = GetXEKNextChild(handle);
			if (xekhandle != 0)
				return new CEBXOutlineElemWrapper(xekhandle);
			else
				return null;
		}
		else
			return null;
	}
		
	/**
	 * 获取XEK目录第一层第一个目录对象。
	 * @return
	 */
	private native long GetXEKFirstChild();
	
	/**
	 * 获取XEK指定目录对象的下一个兄弟目录对象。
	 * @param handle		当前XEK目录对象
	 * @return
	 */	
	private native long GetXEKNextChild(long handle);
}
